﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using ModuloAdministrativo.WSsiar;

namespace ModuloAdministrativo
{
    public partial class FuncionarioForm : Form
    {
        public FuncionarioForm()
        {
            InitializeComponent();
        }

        public void atualizarListView()
        {
            ServicosSIARSoapClient ws = new ServicosSIARSoapClient();
            PessoaBean[] listaFuncionarios = ws.FuncionarioListar();
            EnderecoBean[] listarEnderecos = ws.enderecoListar();
            funcionarioLV.Items.Clear();
            if (listaFuncionarios.Length != 0 && listarEnderecos.Length != 0)
            {
                for (int i = 0; i < listaFuncionarios.Length; i++)
                {
                    EnderecoBean end = buscarEndereco(listaFuncionarios[i].Id);
                    if (end != null)
                    {
                        ListViewItem item = new ListViewItem(listaFuncionarios[i].Nome);
                        item.SubItems.Add(listaFuncionarios[i].Telefone);
                        item.SubItems.Add(listaFuncionarios[i].CPF);
                        item.SubItems.Add(end.Rua);
                        item.SubItems.Add(end.Bairro);
                        item.SubItems.Add(end.Cidade);
                        item.SubItems.Add(end.Numero.ToString());
                        item.SubItems.Add(listaFuncionarios[i].Login);
                        item.SubItems.Add(listaFuncionarios[i].Senha);
                        item.SubItems.Add(end.Complemento);
                        funcionarioLV.Items.Add(item);
                    }
                }
            }
        }

        public EnderecoBean buscarEndereco(int i)
        {
            ServicosSIARSoapClient ws = new ServicosSIARSoapClient();
            EnderecoBean[] listaDeEnderecos = ws.enderecoListar();
            for (int k = 0; k < listaDeEnderecos.Length; k++)
            {
                if (listaDeEnderecos[k].ID_Cliente == i)
                    return listaDeEnderecos[k];
            }
            return null;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (nomeTB.Text == "" | cpfTB.Text == "" | telefoneTB.Text == ""
                | ruaTB.Text == "" | bairroTB.Text == "" | numeroTB.Text == ""
                | cidadeTB.Text == "")
            {
                MessageBox.Show("Preencha alguns campos obrigatorios");
            }

            else
            {
                Pessoa funcionario = new Pessoa();
                funcionario.Nome = nomeTB.Text;
                funcionario.CPF = cpfTB.Text;
                funcionario.Login = loginTB.Text;
                funcionario.Senha = senhaTB.Text;
                funcionario.Telefone = telefoneTB.Text;

                Endereco end = new Endereco();
                end.Rua = ruaTB.Text;
                end.Bairro = bairroTB.Text;
                end.Cidade = cidadeTB.Text;
                end.Numero = int.Parse(numeroTB.Text);
                end.Telefone = telefoneTB.Text;
                end.Complemento = complementoTB.Text;

                if (senhaTB.Text != confirmarsenhaTB.Text)
                {
                    MessageBox.Show("Senha e confirmação de senha não é igual");
                }
                else
                {
                    ServicosSIARSoapClient ws = new ServicosSIARSoapClient();
                    ws.FuncionarioCadastrar(funcionario, end, comboBox1.SelectedItem.ToString());
                    nomeTB.Clear();
                    cpfTB.Clear();
                    loginTB.Clear();
                    senhaTB.Clear();
                    telefoneTB.Clear();

                    ruaTB.Clear();
                    bairroTB.Clear();
                    numeroTB.Clear();
                    telefoneTB.Clear();
                    cidadeTB.Clear();
                    complementoTB.Clear();
                    confirmarsenhaTB.Clear();
                }
            }

            this.atualizarListView();
        }

        private void FuncionarioForm_Load(object sender, EventArgs e)
        {
            ServicosSIARSoapClient ws = new ServicosSIARSoapClient();            
            PessoaTipoBean[] tipo = ws.TipoListar();
            foreach (PessoaTipoBean p in tipo)
            {
                comboBox1.Items.Add(p.Tipo);
            }            
            atualizarListView();
        }

        private void funcionarioLV_ItemActivate(object sender, EventArgs e)
        {
            FuncionarioAtualizarForm form = new FuncionarioAtualizarForm(
                funcionarioLV.FocusedItem.SubItems[0].Text,
                funcionarioLV.FocusedItem.SubItems[1].Text,
                funcionarioLV.FocusedItem.SubItems[2].Text,
                funcionarioLV.FocusedItem.SubItems[3].Text,
                funcionarioLV.FocusedItem.SubItems[4].Text,
                funcionarioLV.FocusedItem.SubItems[5].Text,
                funcionarioLV.FocusedItem.SubItems[6].Text,
                funcionarioLV.FocusedItem.SubItems[7].Text,
                funcionarioLV.FocusedItem.SubItems[8].Text,
                funcionarioLV.FocusedItem.SubItems[9].Text);
            form.ShowDialog();
            this.atualizarListView();
        }
    }
}
